package main

func main() {

	//strsArray := []string{"a", "b", "c"}
	//str := "sssssss"

	//测试用例
	nums := []int{0, 1, 2, 2, 3, 0, 4, 2}
	val := 2

	//打印测试用例返回结果
	resp := removeElement(nums, val)
	for _, v := range nums[:resp] {
		println(v)
	}
	println("新数组的长度：", resp)

}

//双指针 重写 算法
func removeElement(nums []int, val int) int {
	numLen := len(nums)
	startPtr := 0
	for i := 0; i < numLen; i++ {
		if nums[i] != val {
			nums[startPtr] = nums[i] //非常巧妙，在数组首部进行一个重写的操作
			startPtr++
		}
	}
	return startPtr
}
